#!/usr/bin/python
# -*- coding: utf-8 -*-
#coding=utf-8
import datetimeDemo as tsLog
def demo():
    tsLog.logTs("tupleDemo", preNewLineNum=2)

    l = ['知乎', 'woodman', 1987, 2017]
    t1 = ('知乎', 'woodman', 1987, 2017, 'woodman', l) # 元组中可以包含列表和元组
    print("t1", t1)
    t2 = (1, 2, 3, 4, t1)
    print("t2", t2)
    t3 = ('a', 'b', 'c')
    # 我们可以同过元组相加创建一个新元组
    tPlus = t2+t3
    print("t2+t3", tPlus)

    print("前2个", tPlus[0:2])  # 第1到第2个
    print("2到15", tPlus[2:15])  # 2到15个，注意如果结束位超过元组长度不会报错

    # 通过步长切片
    print("前4个步长2", tPlus[0:4:2])  # 每2个数去1个，从第1到第4个
    print("从第3个开始每3个取一个", tPlus[2::3])  # 从第3个取，每3个取一个，取到结尾
    # 花式用法
    print("前3个", tPlus[:3])  # 从开始到tuple第3个元素
    print("从第2个开始到末尾", tPlus[1:])  # 从第二个到tuple结束
    print("整个元组", tPlus[:])  # 获得一个与l相同的tuple
    print("倒数第一个", tPlus[-1])  # 取倒数第一个元素
    print("倒序输出", tPlus[::-1])  # tuple倒叙
    print("倒数第3个 到 倒数第2个", tPlus[-3:-1])  # 倒数第三个到第二个
    print("倒数第4个 到 倒数第2个 步长2", tPlus[-4:-1:2])  # 从倒数第4个每2个取一个，到倒数第二个

    print("'a'出现的个数", tPlus.count('a'))  # 统计元素在元组中的个数
    print("'a'第一次出现的下标", tPlus.index('a'))  # 返回元素在元组中第一次出现的索引号
    if 'z' in tPlus:
        print("'z'第一次出现的下标", tPlus.index('z'))
    else:
        print("'z'不在元组中")

    t4 = ('woodman')  # 无逗号，t4为str类型
    print(type(t4))  # 输出 <class 'str'>
    t4 = ('woodman',)  # 当我们定义元组只有一个值时不要忘记后面的逗号
    print(type(t4))  # 输出 <class 'tuple'>

    t6 = ()  # 定义空元组

if __name__ == '__main__':
    demo()